/*
*	create by  jack ,20211209
*	
*	描述 ：linux 中叫线程，ucos 中叫task。 
*		  该文件提供了一套线程调用的接口，屏蔽具体实现细节,以达到应用程序可以在不同的平台上联合调试。
*   修改记录：[内容][作者][时间]
*	
*/
#ifndef _TASK_DATA_H_
#define _TASK_DATA_H_

#include "os.h"
#include "define_comm.h"

typedef struct  os_sem sj_sem;

struct sj_task_data
{
    //sj_uint32 stk_base;
    sj_char *stk_base; //slj add
    sj_int32 stk_size;
    sj_int8  prio;
    sj_int8  inited;
    sj_int8  exit;
    sj_int8  status;
    sj_int32  periodtime;
    sj_void *private_ptr;
    struct  os_sem sem;
    struct  os_tcb tcb;
};

#define TASK_MODULE_DATA(name,prio,stk_size)\
    sj_uint32 name##_stk[stk_size];\
    struct sj_task_data name##_task_data={&(name##_stk),stk_size,prio}

#define GET_TASK_MODULE_DATA(data,name)\
    data=&name##_task_data


#endif
